package com.dave.gd.core.base.entity;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;

import com.dave.gd.core.base.entity.impl.AbstractBaseEntity;

public interface ISysClass {
    
    public void setClassHint(String classHint);
    
    public String getClassHint();
    
    public void setIsChangeLog(Long isChangeLog);
    
    public Long getIsChangeLog();
    
    public void setClassName(String className);
    
    public String getClassName();
    
    public void setCreateStaff(String createStaff);
    
    public String getCreateStaff();
    
    public void setUpdateDate(Timestamp updateDate);
    
    public Timestamp getUpdateDate();
    
    public void setClassDesc(String classDesc);
    
    public String getClassDesc();
    
    public void setRemark(String remark);
    
    public String getRemark();
    
    public void setSuperClassId(Long superClassId);
    
    public Long getSuperClassId();
    
    public ISysClass getSuperClass();
    
    public void setIsDanyClass(String isDanyClass);
    
    public String getIsDanyClass();
    
    public void setStatusDate(Timestamp statusDate);
    
    public Timestamp getStatusDate();
    
    public void setManageGrade(String manageGrade);
    
    public String getManageGrade();
    
    public void setUpdateStaff(String updateStaff);
    
    public String getUpdateStaff();
    
    public void setHisSeqName(String hisSeqName);
    
    public String getHisSeqName();
    
    public void setPackageId(Long packageId);
    
    public Long getPackageId();
    
    public void setHisTableName(String hisTableName);
    
    public String getHisTableName();
    
    public void setTableName(String tableName);
    
    public String getTableName();
    
    public void setIsEntity(Long isEntity);
    
    public Long getIsEntity();
    
    public void setIsSessionCache(Long isSessionCache);
    
    public Long getIsSessionCache();
    
    public void setJavaCode(String javaCode);
    
    public String getJavaCode();
    
    public void setIsDeleteLog(Long isDeleteLog);
    
    public Long getIsDeleteLog();
    
    public void setTableType(String tableType);
    
    public String getTableType();
    
    public void setStatusCd(String statusCd);
    
    public String getStatusCd();
    
    public void setCreateDate(Timestamp createDate);
    
    public Timestamp getCreateDate();
    
    public void setSeqName(String seqName);
    
    public String getSeqName();
    
    public void setDanyTableName(String danyTableName);
    
    public String getDanyTableName();
    
    public void setClassId(Long classId);
    
    public Long getClassId();
    
    public IAttrSpec getPkAttr();
    
    public Long getId();
    
    public void setId(Long id);
    
    public <T extends IAttrSpec> T getAttrSpecById(Long propertyId);
    
    public <T extends IAttrValue> List<T> getAttrValues(String propertyName);
    
    public <T extends IAttrSpec> T getAttrSpecByCode(String propertyName);
    
    public <T extends IAttrSpec> List<T> getAllAttrSpecs();
    
    public <T extends IAttrSpec> List<T> getAttrSpecs();
    
    public <T extends IAttrSpec> List<T> getAllBaseAttrSpecs();
    
    public void putRules(String key, List rules);
    
    public List getRules(String key);
    
	public <T extends AbstractBaseEntity<ID>,ID extends Serializable> AbstractBaseEntity loadInstance(ID instId) ;
    
    public String getFullJavaCode();
    
    public Long getTtl();
}
